df72408796fc9085a53d1053c62e44dd2947ca49,core/persistence/source/jetbrains/mps/smodel/DefaultSModelDescriptor.java,DefaultSModelDescriptor,getSModelInternal,#,90
Before Change
ModelLoadingState oldState = myModel.getState();
DefaultSModel res = myModel.getModel(ModelLoadingState.ROOTS_LOADED);
if (res == null) return null; // this is when we are in recursion
res.setModelDescriptor(this);
if (oldState != myModel.getState()) {
fireModelStateChanged(oldState, myModel.getState());
}
After Change
@Override
public final DefaultSModel getSModelInternal() {
ModelLoadingState oldState = myModel.getState();
if (oldState.ordinal() >= ModelLoadingState.ROOTS_LOADED.ordinal()) {
return myModel.getModel(ModelLoadingState.ROOTS_LOADED);
}
synchronized (myModel) {
oldState = myModel.getState();
DefaultSModel res = myModel.getModel(ModelLoadingState.ROOTS_LOADED);
if (res == null) return null; // this is when we are in recursion
if (oldState != myModel.getState()) {
res.setModelDescriptor(this);
fireModelStateChanged(oldState, myModel.getState());
}
return res;